package com.example.demo.customer;

import com.example.demo.exception.ApiRequestException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RequestMapping(path = "api/v2/customer")

@RestController
public class CustomerControllerV2 {
    private final CustomerService customerService;

    @Autowired
    public CustomerControllerV2(CustomerService customerService) {
        this.customerService = customerService;
    }
   @GetMapping
   List<Customer> getCustomers(){
        return customerService.getCustomers(id);
   }
   @GetMapping(path="{customerId}")
   Customer getCustomer(@PathVariable("customerId")Long id){
        return (Customer) customerService.getCustomers(id);
       }
    @GetMapping(path="{customerId}/exception")
    Customer getCustomerException(@PathVariable("customerId")Long id){
        throw new ApiRequestException(
                "ApiRequestException for customer" + id
        );
    }




    @PostMapping
    void createNewCustomer(@Valid @RequestBody Customer customer){
        System.out.println("POST 请求...");
        System.out.println(customer);
    }
    @PutMapping
    void updateCustomer(@RequestBody Customer customer){
        System.out.println("UPDATE 请求");
    }
    @DeleteMapping(path = "{customerId}")
     void deleteCustomer(@PathVariable("customerId") Long id){
        System.out.println("DELETE 请求，删除 Customer,其ID为"+id);
    }
}